1. Field
The present application relates generally to storing and retrieving data, and more particularly, to storing time series data to allow data retrieval at multiple levels of granularity.
2. Related Art
Currently, time series data (sequential data from a common source with associated timestamps) is stored as a collection of data points with associated timestamps. To access the time series data over a given period of time, the set of data points must be retrieved from storage, organized, and processed. This requires a lot of time and resources for large data sets over large periods of time.
For example, some homes contain sensors to measure the amount of electricity consumed by the various appliances in the building. These sensors may be programmed to take measurements periodically and may send the measurement data to a computer for processing and storage. Traditionally, these measurements have been stored as individual readings in the computer's memory. Over long periods of time, the amount of data stored becomes considerably large. As a result, the amount of time required to retrieve the data from storage and process it also becomes very large. For instance, assuming that a single sensor is programmed to take a measurement every 2 minutes, there will be approximately 262,800 readings generated over the span of a year. Therefore, in order to view the total amount of electricity measured by that single sensor over a year, 262,800 data entries must be identified, retrieved from memory, and added together. That number grows even larger with the addition of more sensors, an increase in the rate of measurements, and an increase in the viewing range of the data.
Thus, what is needed is an efficient way to store time series data to allow for data retrieval at multiple levels of granularity.